“Cloud” computing often refers to the provision of computing resources as a service, usually by a number of computer servers that are networked together at a location that is remote from the location from which the services are requested. A cloud datacenter refers to the physical arrangement of servers that make up a cloud or a particular portion of a cloud. For example, servers can be physically arranged in the datacenter into rooms, groups, rows, and racks. A datacenter may have one or more zones, which may include one or more rooms of servers. Each room may have one or more rows of servers, and each row may include one or more racks. Each rack may include one or more individual server nodes. Servers in zones, rooms, racks, and/or rows may be arranged into groups based on physical infrastructure requirements of the datacenter facility, which may include power, energy, thermal, heat, and/or other requirements.
Notwithstanding its physical location within a datacenter, a server or portions of its resources may be allocated (e.g., for use by different customers of the datacenter) according to actual or anticipated use requirements, such as security, quality of service, throughput, processing capacity, and/or other criteria. As an example, one customer's computing workload may be divided among multiple physical servers (which may be located in different rows, racks, groups, or rooms of the datacenter), or among multiple processes on the same server, using virtualization. Thus, in the context of virtualization, servers can be grouped logically to satisfy workload requirements.
A cloud scheduling system refers to computer software that is used to manage the server resources in a cloud datacenter. Cloud scheduling systems attempt to reconcile customers' workload requirements with facilities management criteria and/or other requirements, and allocate the cloud's server resources accordingly. In some cases, scheduling may be complicated by physical configurations that contain heterogeneous groups of servers, e.g., zones, rooms, groups, rows, or racks in which individual servers have different hardware configurations. This can be a common occurrence, as many datacenters replace or upgrade servers only as needed (e.g., rather than upgrading an entire group at once), for cost reasons or otherwise.